<template>
  <div class="app-container">
    <generate-form ref="generateForm" :data="jsonData" :remote="remoteFuncs" :value="editData" />
    <div class="generate-block">
      <el-button type="primary" @click="handleSubmit">查询</el-button>
      <el-button type="primary">重置</el-button>
    </div>
    <generate-table ref="generateTable" :data="jsonDataTable" :remote="remoteFuncs" :value="editData">
      <!--自定义新增编辑页面内容-->
      <!--<template slot="table_dialog" slot-scope="scope">-->
      <!--<generate-form :ref="scope.form" :data="jsonData" :remote="remoteFuncs" :value="scope.data"/>-->
      <!--</template>-->
    </generate-table>
  </div>
</template>
<script>
import GenerateForm from '@/components/CreateForm/GenerateForm'
import '@/components/CreateForm/styles/FormCreate.css'
import { getCodeList } from '@/api/codelist'
import GenerateTable from '@/components/CreateTable/GenerateTable'
export default {
  components: {
    GenerateForm,
    GenerateTable
  },
  data: function() {
    return {
      jsonData: { 'list': [{ 'type': 'grid', 'name': '栅格布局', 'icon': 'th', 'columns': [{ 'span': 10, 'list': [{ 'type': 'input', 'name': '金额', 'icon': 'regular/keyboard', 'options': { 'width': '100%', 'defaultValue': '', 'required': false, 'dataType': 'string', 'pattern': '', 'placeholder': '', 'readonly': false, 'disabled': false, 'clearable': false, 'remoteFunc': 'func_1540967238000_89294' }, 'key': '1540967238000_89294', 'model': 'input_1540967238000_89294', 'rules': [{ 'type': 'string', 'message': '单行文本格式不正确' }] }] }, { 'span': 10, 'list': [{ 'type': 'input', 'name': '持票单位', 'icon': 'regular/keyboard', 'options': { 'width': '100%', 'defaultValue': '', 'required': false, 'dataType': 'string', 'pattern': '', 'placeholder': '', 'readonly': false, 'disabled': false, 'clearable': false, 'remoteFunc': 'func_1540967249000_67461' }, 'key': '1540967249000_67461', 'model': 'input_1540967249000_67461', 'rules': [] }] }], 'options': { 'gutter': 0, 'justify': 'start', 'align': 'top', 'remoteFunc': 'func_1540967236000_75877' }, 'key': '1540967236000_75877', 'model': 'grid_1540967236000_75877', 'rules': [] }, { 'type': 'grid', 'name': '栅格布局', 'icon': 'th', 'columns': [{ 'span': 10, 'list': [{ 'type': 'input', 'name': '票据号', 'icon': 'regular/keyboard', 'options': { 'width': '100%', 'defaultValue': '', 'required': false, 'dataType': 'string', 'pattern': '', 'placeholder': '', 'readonly': false, 'disabled': false, 'clearable': false, 'remoteFunc': 'func_1540967321000_92992' }, 'key': '1540967321000_92992', 'model': 'input_1540967321000_92992', 'rules': [{ 'type': 'string', 'message': '单行文本格式不正确' }] }] }, { 'span': 10, 'list': [{ 'type': 'select', 'name': '承兑单位开户行', 'icon': 'regular/caret-square-down', 'options': { 'defaultValue': '', 'multiple': false, 'disabled': false, 'clearable': false, 'placeholder': '', 'required': false, 'showLabel': false, 'width': '100%', 'options': [{ 'value': '下拉框1' }, { 'value': '下拉框2' }, { 'value': '下拉框3' }], 'remote': true, 'remoteOptions': [], 'props': { 'value': 'value', 'label': 'label' }, 'remoteFunc': 'OpeningBank ' }, 'key': '1540967334000_40065', 'model': 'select_1540967334000_40065', 'rules': [] }] }], 'options': { 'gutter': 0, 'justify': 'start', 'align': 'top', 'remoteFunc': 'func_1540967255000_84877' }, 'key': '1540967255000_84877', 'model': 'grid_1540967255000_84877', 'rules': [] }, { 'type': 'grid', 'name': '栅格布局', 'icon': 'th', 'columns': [{ 'span': 10, 'list': [{ 'type': 'select', 'name': '持票单位开户行', 'icon': 'regular/caret-square-down', 'options': { 'defaultValue': '', 'multiple': false, 'disabled': false, 'clearable': false, 'placeholder': '', 'required': false, 'showLabel': false, 'width': '100%', 'options': [{ 'value': '下拉框1' }, { 'value': '下拉框2' }, { 'value': '下拉框3' }], 'remote': true, 'remoteOptions': [], 'props': { 'value': 'value', 'label': 'label' }, 'remoteFunc': 'BusTicketOpenBank' }, 'key': '1540967388000_79597', 'model': 'select_1540967388000_79597', 'rules': [] }] }, { 'span': 10, 'list': [{ 'type': 'select', 'name': '验票结果', 'icon': 'regular/caret-square-down', 'options': { 'defaultValue': '', 'multiple': false, 'disabled': false, 'clearable': false, 'placeholder': '', 'required': false, 'showLabel': false, 'width': '100%', 'options': [{ 'value': '下拉框1' }, { 'value': '下拉框2' }, { 'value': '下拉框3' }], 'remote': true, 'remoteOptions': [], 'props': { 'value': 'value', 'label': 'label' }, 'remoteFunc': 'RecountResults' }, 'key': '1540967399000_15254', 'model': 'select_1540967399000_15254', 'rules': [] }] }], 'options': { 'gutter': 0, 'justify': 'start', 'align': 'top', 'remoteFunc': 'func_1540967378000_71157' }, 'key': '1540967378000_71157', 'model': 'grid_1540967378000_71157', 'rules': [] }, { 'type': 'grid', 'name': '栅格布局', 'icon': 'th', 'columns': [{ 'span': 10, 'list': [{ 'type': 'date', 'name': '收票日期', 'icon': 'regular/calendar-alt', 'options': { 'defaultValue': '', 'readonly': false, 'disabled': false, 'editable': true, 'clearable': true, 'placeholder': '', 'startPlaceholder': '', 'endPlaceholder': '', 'type': 'date', 'format': 'yyyy-MM-dd', 'timestamp': false, 'required': false, 'width': '100%', 'remoteFunc': 'func_1540967529000_84212' }, 'key': '1540967529000_84212', 'model': 'date_1540967529000_84212', 'rules': [] }] }, { 'span': 10, 'list': [{ 'type': 'date', 'name': '签发日期', 'icon': 'regular/calendar-alt', 'options': { 'defaultValue': '', 'readonly': false, 'disabled': false, 'editable': true, 'clearable': true, 'placeholder': '', 'startPlaceholder': '', 'endPlaceholder': '', 'type': 'date', 'format': 'yyyy-MM-dd', 'timestamp': false, 'required': false, 'width': '100%', 'remoteFunc': 'func_1540967546000_89168' }, 'key': '1540967546000_89168', 'model': 'date_1540967546000_89168', 'rules': [] }] }], 'options': { 'gutter': 0, 'justify': 'start', 'align': 'top', 'remoteFunc': 'func_1540967526000_29447' }, 'key': '1540967526000_29447', 'model': 'grid_1540967526000_29447', 'rules': [] }, { 'type': 'grid', 'name': '栅格布局', 'icon': 'th', 'columns': [{ 'span': 10, 'list': [{ 'type': 'date', 'name': '到期日期', 'icon': 'regular/calendar-alt', 'options': { 'defaultValue': '', 'readonly': false, 'disabled': false, 'editable': true, 'clearable': true, 'placeholder': '', 'startPlaceholder': '', 'endPlaceholder': '', 'type': 'date', 'format': 'yyyy-MM-dd', 'timestamp': false, 'required': false, 'width': '100%', 'remoteFunc': 'func_1540967590000_47718' }, 'key': '1540967590000_47718', 'model': 'date_1540967590000_47718', 'rules': [] }] }, { 'span': 10, 'list': [{ 'type': 'select', 'name': '票据类型', 'icon': 'regular/caret-square-down', 'options': { 'defaultValue': '', 'multiple': false, 'disabled': false, 'clearable': false, 'placeholder': '', 'required': false, 'showLabel': false, 'width': '100%', 'options': [{ 'value': '下拉框1' }, { 'value': '下拉框2' }, { 'value': '下拉框3' }], 'remote': true, 'remoteOptions': [], 'props': { 'value': 'value', 'label': 'label' }, 'remoteFunc': 'BillType' }, 'key': '1540967611000_76283', 'model': 'select_1540967611000_76283', 'rules': [] }] }], 'options': { 'gutter': 0, 'justify': 'start', 'align': 'top', 'remoteFunc': 'func_1540967564000_53044' }, 'key': '1540967564000_53044', 'model': 'grid_1540967564000_53044', 'rules': [] }], 'config': { 'labelWidth': 100, 'labelPosition': 'right' }, 'table': { 'showRemove': false, 'showIndexCol': false, 'showEdit': false, 'showExport': false, 'showAdd': false, 'stripe': true, 'border': true }},
      jsonDataTable:
        {
          'list': [
            {
              'type': 'grid',
              'name': '栅格布局',
              'icon': 'th',
              'columns': [
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'input',
                      'name': '票据号码',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'number',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1540972333000_26793'
                      },
                      'key': '1540972333000_26793',
                      'model': 'input_1540972333000_26793',
                      'rules': [
                        {
                          'type': 'number',
                          'message': '单行文本格式不正确'
                        }
                      ]
                    }
                  ]
                },
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'select',
                      'name': '承兑单位',
                      'icon': 'regular/caret-square-down',
                      'options': {
                        'defaultValue': '',
                        'multiple': false,
                        'disabled': false,
                        'clearable': false,
                        'placeholder': '',
                        'required': false,
                        'showLabel': false,
                        'width': '100%',
                        'options': [
                          {
                            'value': '下拉框1'
                          },
                          {
                            'value': '下拉框2'
                          },
                          {
                            'value': '下拉框3'
                          }
                        ],
                        'remote': false,
                        'remoteOptions': [],
                        'props': {
                          'value': 'value',
                          'label': 'label'
                        },
                        'remoteFunc': 'func_1540972353000_20748'
                      },
                      'key': '1540972353000_20748',
                      'model': 'select_1540972353000_20748',
                      'rules': []
                    }
                  ]
                }
              ],
              'options': {
                'gutter': 0,
                'justify': 'start',
                'align': 'top',
                'remoteFunc': 'func_1540972182000_21231'
              },
              'key': '1540972182000_21231',
              'model': 'grid_1540972182000_21231',
              'rules': []
            },
            {
              'type': 'grid',
              'name': '栅格布局',
              'icon': 'th',
              'columns': [
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'input',
                      'name': '票据金额',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'number',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1540972414000_84791'
                      },
                      'key': '1540972414000_84791',
                      'model': 'input_1540972414000_84791',
                      'rules': [
                        {
                          'type': 'number',
                          'message': '票据金额格式不正确'
                        }
                      ]
                    }
                  ]
                },
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'date',
                      'name': '出票日期',
                      'icon': 'regular/calendar-alt',
                      'options': {
                        'defaultValue': '',
                        'readonly': false,
                        'disabled': false,
                        'editable': true,
                        'clearable': true,
                        'placeholder': '',
                        'startPlaceholder': '',
                        'endPlaceholder': '',
                        'type': 'date',
                        'format': 'yyyy-MM-dd',
                        'timestamp': false,
                        'required': false,
                        'width': '100%',
                        'remoteFunc': 'func_1540972437000_88709'
                      },
                      'key': '1540972437000_88709',
                      'model': 'date_1540972437000_88709',
                      'rules': []
                    }
                  ]
                }
              ],
              'options': {
                'gutter': 0,
                'justify': 'start',
                'align': 'top',
                'remoteFunc': 'func_1540972409000_87268'
              },
              'key': '1540972409000_87268',
              'model': 'grid_1540972409000_87268',
              'rules': []
            },
            {
              'type': 'grid',
              'name': '栅格布局',
              'icon': 'th',
              'columns': [
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'date',
                      'name': '到期日期',
                      'icon': 'regular/calendar-alt',
                      'options': {
                        'defaultValue': '',
                        'readonly': false,
                        'disabled': false,
                        'editable': true,
                        'clearable': true,
                        'placeholder': '',
                        'startPlaceholder': '',
                        'endPlaceholder': '',
                        'type': 'date',
                        'format': 'yyyy-MM-dd',
                        'timestamp': false,
                        'required': false,
                        'width': '100%',
                        'remoteFunc': 'func_1540972453000_58319'
                      },
                      'key': '1540972453000_58319',
                      'model': 'date_1540972453000_58319',
                      'rules': []
                    }
                  ]
                },
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'select',
                      'name': '票据种类',
                      'icon': 'regular/caret-square-down',
                      'options': {
                        'defaultValue': '',
                        'multiple': false,
                        'disabled': false,
                        'clearable': false,
                        'placeholder': '',
                        'required': false,
                        'showLabel': false,
                        'width': '100%',
                        'options': [
                          {
                            'value': '下拉框1'
                          },
                          {
                            'value': '下拉框2'
                          },
                          {
                            'value': '下拉框3'
                          }
                        ],
                        'remote': false,
                        'remoteOptions': [],
                        'props': {
                          'value': 'value',
                          'label': 'label'
                        },
                        'remoteFunc': 'func_1540972469000_52357'
                      },
                      'key': '1540972469000_52357',
                      'model': 'select_1540972469000_52357',
                      'rules': []
                    }
                  ]
                }
              ],
              'options': {
                'gutter': 0,
                'justify': 'start',
                'align': 'top',
                'remoteFunc': 'func_1540972448000_83700'
              },
              'key': '1540972448000_83700',
              'model': 'grid_1540972448000_83700',
              'rules': []
            },
            {
              'type': 'grid',
              'name': '栅格布局',
              'icon': 'th',
              'columns': [
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'input',
                      'name': '验票结果',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1540972495000_55411'
                      },
                      'key': '1540972495000_55411',
                      'model': 'input_1540972495000_55411',
                      'rules': [
                        {
                          'type': 'string',
                          'message': '单行文本格式不正确'
                        }
                      ]
                    }
                  ]
                },
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'select',
                      'name': '承兑单位开户行',
                      'icon': 'regular/caret-square-down',
                      'options': {
                        'defaultValue': '',
                        'multiple': false,
                        'disabled': false,
                        'clearable': false,
                        'placeholder': '',
                        'required': false,
                        'showLabel': false,
                        'width': '100%',
                        'options': [
                          {
                            'value': '下拉框1'
                          },
                          {
                            'value': '下拉框2'
                          },
                          {
                            'value': '下拉框3'
                          }
                        ],
                        'remote': false,
                        'remoteOptions': [],
                        'props': {
                          'value': 'value',
                          'label': 'label'
                        },
                        'remoteFunc': 'func_1540972508000_85083'
                      },
                      'key': '1540972508000_85083',
                      'model': 'select_1540972508000_85083',
                      'rules': []
                    }
                  ]
                }
              ],
              'options': {
                'gutter': 0,
                'justify': 'start',
                'align': 'top',
                'remoteFunc': 'func_1540972477000_80614'
              },
              'key': '1540972477000_80614',
              'model': 'grid_1540972477000_80614',
              'rules': []
            },
            {
              'type': 'grid',
              'name': '栅格布局',
              'icon': 'th',
              'columns': [
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'select',
                      'name': '收款单位开户行',
                      'icon': 'regular/caret-square-down',
                      'options': {
                        'defaultValue': '',
                        'multiple': false,
                        'disabled': false,
                        'clearable': false,
                        'placeholder': '',
                        'required': false,
                        'showLabel': false,
                        'width': '100%',
                        'options': [
                          {
                            'value': '下拉框1'
                          },
                          {
                            'value': '下拉框2'
                          },
                          {
                            'value': '下拉框3'
                          }
                        ],
                        'remote': false,
                        'remoteOptions': [],
                        'props': {
                          'value': 'value',
                          'label': 'label'
                        },
                        'remoteFunc': 'func_1540972533000_17694'
                      },
                      'key': '1540972533000_17694',
                      'model': 'select_1540972533000_17694',
                      'rules': []
                    }
                  ]
                },
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'input',
                      'name': '持票单位全称',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1540972546000_99936'
                      },
                      'key': '1540972546000_99936',
                      'model': 'input_1540972546000_99936',
                      'rules': [
                        {
                          'type': 'string',
                          'message': '单行文本格式不正确'
                        }
                      ]
                    }
                  ]
                }
              ],
              'options': {
                'gutter': 0,
                'justify': 'start',
                'align': 'top',
                'remoteFunc': 'func_1540972512000_95377'
              },
              'key': '1540972512000_95377',
              'model': 'grid_1540972512000_95377',
              'rules': []
            },
            {
              'type': 'grid',
              'name': '栅格布局',
              'icon': 'th',
              'columns': [
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'input',
                      'name': '收款单位全称',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1540972567000_518'
                      },
                      'key': '1540972567000_518',
                      'model': 'input_1540972567000_518',
                      'rules': [
                        {
                          'type': 'string',
                          'message': '单行文本格式不正确'
                        }
                      ]
                    }
                  ]
                },
                {
                  'span': 10,
                  'list': [
                    {
                      'type': 'input',
                      'name': '交易前手',
                      'icon': 'regular/keyboard',
                      'options': {
                        'width': '100%',
                        'defaultValue': '',
                        'required': false,
                        'dataType': 'string',
                        'pattern': '',
                        'placeholder': '',
                        'readonly': false,
                        'disabled': false,
                        'clearable': false,
                        'remoteFunc': 'func_1540972585000_30829'
                      },
                      'key': '1540972585000_30829',
                      'model': 'input_1540972585000_30829',
                      'rules': []
                    }
                  ]
                }
              ],
              'options': {
                'gutter': 0,
                'justify': 'start',
                'align': 'top',
                'remoteFunc': 'func_1540972550000_6180'
              },
              'key': '1540972550000_6180',
              'model': 'grid_1540972550000_6180',
              'rules': []
            }
          ],
          'config': {
            'labelWidth': 100,
            'labelPosition': 'right'
          },
          'table': {
            'showRemove': false,
            'showIndexCol': false,
            'showEdit': false,
            'showExport': false,
            'showAdd': false,
            'stripe': true,
            'border': true
          }
        },
      editData: {},
      values: {},
      remoteFuncs: {

        OpeningBank(resolve) {
          // 承兑单位开户行 select_1540967334000_40065
          // 获取到远端数据后执行回调函数
          // resolve(data)
          getCodeList('承兑单位开户行').then(response => { resolve(response.data) })
        },

        BusTicketOpenBank(resolve) {
          // 持票单位开户行 select_1540967388000_79597
          // 获取到远端数据后执行回调函数
          // resolve(data)
          getCodeList('持票单位开户行').then(response => { resolve(response.data) })
        },

        RecountResults(resolve) {
          // 验票结果 select_1540967399000_15254
          // 获取到远端数据后执行回调函数
          // resolve(data)
          getCodeList('验票结果').then(response => { resolve(response.data) })
        },

        BillType(resolve) {
          // 票据类型 select_1540967611000_76283
          // 获取到远端数据后执行回调函数
          // resolve(data)
          getCodeList('票据类型').then(response => { resolve(response.data) })
        }

      }
    }
  },
  methods: {
    handleSubmit() {
      this.$refs.generateForm.getData().then(data => {
        // 数据校验成功
        // data 为获取的表单数据
      }).catch(e => {
        // 数据校验失败
      })
    }
  }
}
</script>
